package top.kaoshanji.p2ch15b;

/**
 * 代码清单-p2ch15b-454页a：一个简单的生产者
 * author kaoshanji
 * ^_^
 * create time 2025/2/24 16:13
 */
public class MyBlockingQueueProducer extends Thread {

    private MyBlockingQueue<String> queue;

    // 构造器是一个外部传入参数的入口
    public MyBlockingQueueProducer(MyBlockingQueue<String> queue) {
        this.queue = queue;
    }

    @Override
    public void run() {
        int num = 0;
        try {
            while (true) {
                String task = String.valueOf(num);
                queue.put(task); // queue 是通过构造器传入进来的，这样，在这个类里面就可以使用了

                System.out.println("produce task " + task);

                num++;
                Thread.sleep((int) (Math.random() * 100));
            }
        } catch (InterruptedException e) {
            /// //
        }

    }
}
